package com.coolingme.kpi;

import java.util.LinkedList;
import java.util.List;

/**
 * 员工业务报表
 * 维护员工数据，并提供方法 接受访问者对数据集合的访问操作
 *
 * @author wangyue
 * @date 2020/10/10 10:29
 */
public class BusinessReport {

    /**
     * 员工（元素）容器
     */
    private List<AbstractEmployee> list = new LinkedList<>();

    public BusinessReport() {
        list.add(new Manager("经理A"));
        list.add(new Manager("经理B"));
        list.add(new Engineer("员工A"));
        list.add(new Engineer("员工B"));
        list.add(new Engineer("员工C"));
    }

    /**
     * 为访问者做报告
     *
     * @param visitor 访问者
     */
    public void showReport(IVisitor visitor) {
        for (AbstractEmployee employee : list) {
            employee.accept(visitor);
        }
    }

}
